﻿using DevExpress.Data;

namespace Marmat.Forms.Views.Grid
{
    public class CustomColumnSortEventArgs : GridEventArgs
    {
        internal DevExpress.XtraGrid.Views.Base.CustomColumnSortEventArgs info;

        internal CustomColumnSortEventArgs(BaseGrid gridControl, DevExpress.XtraGrid.Views.Base.CustomColumnSortEventArgs info) : base(gridControl)
        {
            this.info = info;
        }


        /// <summary>
        /// 获取应用于正在处理的列的当前排序顺序。
        /// </summary>
        /// <returns></returns>
        public ColumnSortOrder SortOrder
        {
            get
            {
                return this.info.SortOrder;
            }
        }

        /// <summary>
        /// 获取正在比较其值的列。
        /// </summary>
        /// <returns></returns>
        public Column Column
        {
            get
            {
                return (Column)this.info.Column.Tag;
            }
        }

        /// <summary>
        /// 获取或设置是否处理比较操作，因此不存在缺省值
        /// 处理是必需的。
        /// </summary>
        /// <returns></returns>
        public bool Handled
        {
            get
            {
                return this.info.Handled;
            }

            set
            {
                this.info.Handled = value;
            }
        }

        /// <summary>
        /// 获取正在比较的第一个值。
        /// </summary>
        /// <returns></returns>
        public object Value1
        {
            get
            {
                return this.info.Value1;
            }
        }

        /// <summary>
        /// 获取正在比较的第二个值。
        /// </summary>
        /// <returns></returns>
        public object Value2
        {
            get
            {
                return this.info.Value2;
            }
        }

        /// <summary>
        /// 获取或设置自定义比较的结果。
        /// </summary>
        /// <returns></returns>
        public int Result
        {
            get
            {
                return this.info.Result;
            }

            set
            {
                this.info.Result = value;
            }
        }

        /// <summary>
        /// 获取正在比较的第一行对象。
        /// </summary>
        /// <returns></returns>
        public object RowObject1
        {
            get
            {
                return this.info.RowObject1;
            }
        }
        /// <summary>
        /// 获取正在比较的第二行对象。
        /// </summary>
        /// <returns></returns>
        public object RowObject2
        {
            get
            {
                return this.info.RowObject2;
            }
        }

        /// <summary>
        /// 获取正在比较的两行中第一行的数据源中的索引。
        /// </summary>
        /// <returns></returns>
        public int ListSourceRowIndex1
        {
            get
            {
                return this.info.ListSourceRowIndex1;
            }
        }

        /// <summary>
        /// 获取正在比较的两行中第二行的数据源中的索引。
        /// </summary>
        /// <returns></returns>
        public int ListSourceRowIndex2
        {
            get
            {
                return this.info.ListSourceRowIndex2;
            }
        }
    }
}